Multicast is the delivery of a message or information to a group of destination computers simultaneously in a single transmission from the source. Copies of the message are automatically replicated and forwarded by other network elements. Forwarding and replicating multicast packets are usually done by intermediate nodes in the network—switches fulfill multicast forwarding inside a layer 2 network while (multicast) routers fulfill multicast routing across layer 3 networks. Typically, switches that support multicast use IGMP (Internet Group Management Protocol) snooping, while routers that support multicast use PIM (Protocol Independent Multicast) as the routing protocol.
Though previously not very many applications use multicast, many IP multicast applications have been developed and deployed like financial software, video service, etc. A use case worth noting is overlay based network virtualization (layer 2 tunneling), with VXLAN to be an important technology proposed. VXLAN can support a large number of logical layer 2 networks over a physical IP network. It is based on MAC-over-UDP encapsulation, and requires an IP multicast group to be allocated for encapsulation of BUM (broadcast, unknown unicast, and multicast) traffic inside a logical network. As a result, a large number of multicast groups may be consumed, especially in a cloud environment in which each tenant may create a number of logical networks. These created logical networks and corresponding multicast groups may span across physical layer 3 networks and even datacenters.
Unfortunately, use of IP multicast is limited by lack of infrastructure to support it. Low end switches and routers usually do not support IGMP and PIM, or they do not support a large number of multicast groups. Moreover, even when the physical network hardware has the capabilities to support multicast, users generally eschew enabling multicast in the datacenter networks due to the complexity in the manageability and the scalability of IP multicast. Enabling multicast across datacenters and provider networks is even more difficult.
What is needed is a network system that is able to fully exploit the multicast capability provided by the physical network hardware when and where such capability is available. Such a network system should distinguish segments of the physical network that supports multicast from those that do not so the system knows where multicast is supported. The network should also dynamically detect actual network configuration and underlying topology so the network system can rely on multicast capability when it becomes available.